/* 
 * File:   AllAllParametersCommand.h
 * Author: Gab'z
 *
 * Created on 13 juin 2012, 18:47
 */

#ifndef ALLPARAMETERSCOMMAND_H
#define	ALLPARAMETERSCOMMAND_H

#include "ParametersCommand.h"

namespace calculator {
    class Parameters;

    class AllParametersCommand : public ParametersCommand {
        friend class XMLParser;

    public:
        AllParametersCommand(const Parameters* parameters);

        AllParametersCommand* clone() const;
        virtual ~AllParametersCommand();

    protected:
        const Memento* createMemento() const throw (CommandException);
        void restoreFromMemento(const Memento* memento) const throw (MementoException);


        void apply(Parameters* parameters) const;

        AllParametersCommand(const std::string name);
        AllParametersCommand(const AllParametersCommand& orig);

    private:
        const Parameters* _parameters;
    };
}
#endif	/* ALLPARAMETERSCOMMAND_H */

